An individual may wish to evaluate a database for various reasons. For example, the individual may wish to perform a unit test on the database to ensure that it returns correct results when queried. Alternatively, or in addition, the individual may wish to perform various integrity or security checks on the database.
In a typical approach, the individual may conduct the evaluation in a manual ad hoc manner, sometimes relying on randomization techniques. For example, the individual may manually generate test data for use in evaluating a database for a particular test query. That test data may include one or more test tables to be loaded into the database, as well as one or more parameter values for use in the test query. The individual may then manually submit the test query (which includes the selected parameter value(s)) to the database (which includes the selected test table(s)). The individual may then determine whether the query produces a result which agrees with an expected test condition. This approach can be both tedious and prone to errors. For instance, there are often multiple constraints which have a bearing on the creation of test data, presenting a sometimes-complex combinatorial problem. In view thereof, the individual may find it burdensome to produce the test data in a reliable manner.